import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.TreeSet;

//第三大的数
class Solution {
    //215. 数组中的第K个最大元素
    //Top-K问题
    public static int findKthLargest(int[] nums, int k) {
        PriorityQueue<Integer> q1 = new PriorityQueue<>(k);
        int tmp = 0;
        for (int i = 0; i < k; i++) {
            q1.offer(nums[i]);
        }
        for (int i = k; i < nums.length; i++) {
            tmp = q1.peek();
            if (nums[i] > tmp) {
                q1.poll();
                q1.offer(nums[i]);
            }
        }
        return q1.poll();
    }
    public int thirdMax(int[] nums) {
        TreeSet<Integer> s = new TreeSet<Integer>();
        for (int num : nums) {
            s.add(num);
            if (s.size() > 3) {
                s.remove(s.first());
            }
        }
        return s.size() == 3 ? s.first() : s.last();
    }
}